package com.chen.servlet;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet("/a")
public class ServletA extends HttpServlet {
    /*
    1. 转发操作是由服务器内部进行进行的，客户端是不知道
    2. 并且客户端的地址栏是不发送改变的
    3. 客户端只发送的一次请求，所以服务器值生成一对 request 和 response对象
    4. 在 servlet 中是通过 请求对象获取转发器的
    5. 启动转发器的时候需要两个参数 - request 和 response对象 ，这个两个参数就是当前service方法的参数
    6. 因此 转发源和转发目标都是使用都一对request 和 response对象
    7. 转发目标只能是本项目内资源
    8. 在WEB-INF 中受保护的资源，是可以通过转发来进行间接访问的
    */
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("A 执行了");

        System.out.println(req.getParameter("username"));
        req.setAttribute("age", "123");

        //请求的资源[/web03/https://www.baidu.com/]不可用
        //RequestDispatcher dispatcher = req.getRequestDispatcher("https://www.baidu.com/");

        RequestDispatcher dispatcher = req.getRequestDispatcher("b");
        dispatcher.forward(req, resp);
    }
}
